package com.greenold.residing.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.greenold.common.annotation.Excel;
import com.greenold.common.core.domain.BaseEntity;

/**
 * 合同跟踪对象 contract
 * 
 * @author ruoyi
 * @date 2025-10-13
 */
public class Contract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    @Excel(name = "序号")
    private String id;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNo;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 老人姓名 */
    @Excel(name = "老人姓名")
    private String elderName;

    /** 老人身份证号 */
    @Excel(name = "老人身份证号")
    private String elderIdCard;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 合同状态 */
    @Excel(name = "合同状态")
    private String status;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 协议url */
    private String agreementUrl;

    /** 丙方手机号 */
    private String partyCPhone;

    /** 老人id */
    private String elderId;

    /** 丙方名称 */
    private String partyCName;

    /** 排序字段 */
    private Long sortOrder;

    /** 级别描述 */
    private String levelDesc;

    /** 修改时间 */
    private Date updatedAt;

    /** 修改人 */
    private String updatedBy;

    /** 入住单号 */
    private String checkinNo;

    /** 签约日期 */
    private Date signDate;

    /** 解除提交人 */
    private String terminateBy;

    /** 解除日期 */
    private Date terminateDate;

    /** 解除协议url */
    private String terminateAgreementUrl;

    /** 退住id */
    private String checkoutId;

    /** 扩展字段2 */
    private String extend2;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setContractNo(String contractNo) 
    {
        this.contractNo = contractNo;
    }

    public String getContractNo() 
    {
        return contractNo;
    }

    public void setContractName(String contractName) 
    {
        this.contractName = contractName;
    }

    public String getContractName() 
    {
        return contractName;
    }

    public void setElderName(String elderName) 
    {
        this.elderName = elderName;
    }

    public String getElderName() 
    {
        return elderName;
    }

    public void setElderIdCard(String elderIdCard) 
    {
        this.elderIdCard = elderIdCard;
    }

    public String getElderIdCard() 
    {
        return elderIdCard;
    }

    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setCreatedBy(String createdBy) 
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() 
    {
        return createdBy;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setAgreementUrl(String agreementUrl) 
    {
        this.agreementUrl = agreementUrl;
    }

    public String getAgreementUrl() 
    {
        return agreementUrl;
    }

    public void setPartyCPhone(String partyCPhone) 
    {
        this.partyCPhone = partyCPhone;
    }

    public String getPartyCPhone() 
    {
        return partyCPhone;
    }

    public void setElderId(String elderId) 
    {
        this.elderId = elderId;
    }

    public String getElderId() 
    {
        return elderId;
    }

    public void setPartyCName(String partyCName) 
    {
        this.partyCName = partyCName;
    }

    public String getPartyCName() 
    {
        return partyCName;
    }

    public void setSortOrder(Long sortOrder) 
    {
        this.sortOrder = sortOrder;
    }

    public Long getSortOrder() 
    {
        return sortOrder;
    }

    public void setLevelDesc(String levelDesc) 
    {
        this.levelDesc = levelDesc;
    }

    public String getLevelDesc() 
    {
        return levelDesc;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setUpdatedBy(String updatedBy) 
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() 
    {
        return updatedBy;
    }

    public void setCheckinNo(String checkinNo) 
    {
        this.checkinNo = checkinNo;
    }

    public String getCheckinNo() 
    {
        return checkinNo;
    }

    public void setSignDate(Date signDate) 
    {
        this.signDate = signDate;
    }

    public Date getSignDate() 
    {
        return signDate;
    }

    public void setTerminateBy(String terminateBy) 
    {
        this.terminateBy = terminateBy;
    }

    public String getTerminateBy() 
    {
        return terminateBy;
    }

    public void setTerminateDate(Date terminateDate) 
    {
        this.terminateDate = terminateDate;
    }

    public Date getTerminateDate() 
    {
        return terminateDate;
    }

    public void setTerminateAgreementUrl(String terminateAgreementUrl) 
    {
        this.terminateAgreementUrl = terminateAgreementUrl;
    }

    public String getTerminateAgreementUrl() 
    {
        return terminateAgreementUrl;
    }

    public void setCheckoutId(String checkoutId) 
    {
        this.checkoutId = checkoutId;
    }

    public String getCheckoutId() 
    {
        return checkoutId;
    }

    public void setExtend2(String extend2) 
    {
        this.extend2 = extend2;
    }

    public String getExtend2() 
    {
        return extend2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("contractNo", getContractNo())
            .append("contractName", getContractName())
            .append("elderName", getElderName())
            .append("elderIdCard", getElderIdCard())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("status", getStatus())
            .append("createdBy", getCreatedBy())
            .append("createdAt", getCreatedAt())
            .append("agreementUrl", getAgreementUrl())
            .append("partyCPhone", getPartyCPhone())
            .append("elderId", getElderId())
            .append("partyCName", getPartyCName())
            .append("sortOrder", getSortOrder())
            .append("levelDesc", getLevelDesc())
            .append("updatedAt", getUpdatedAt())
            .append("updatedBy", getUpdatedBy())
            .append("checkinNo", getCheckinNo())
            .append("signDate", getSignDate())
            .append("terminateBy", getTerminateBy())
            .append("terminateDate", getTerminateDate())
            .append("terminateAgreementUrl", getTerminateAgreementUrl())
            .append("checkoutId", getCheckoutId())
            .append("remark", getRemark())
            .append("extend2", getExtend2())
            .toString();
    }
}
